小弟自開學後白天上課晚上上班,每天時間不多,進度比較緩慢,請多見諒
上篇將資料存至資料庫,這篇要將資料從資料庫取出,並做處理後作為訊息傳出
if(event.message.text[:3:]=="key"):
key=event.message.text[4::] #取得key後面的文字
cursor=conn.cursor()
#將取得的key作為關鍵字在group_buying_message裡找到訊息文字
cursor.execute(f"SELECT message_text FROM group_buying_message WHERE keyword='{key}';")
message_text = cursor.fetchone()
#找到訊息文字後面才執行
if(not message_text is None):
#用key在group_buying_message裡找到訊息文字的mid,再用mid從message_emoji裡找到LINE emoji資訊
cursor.execute(f"SELECT index,product_id,emoji_id FROM message_emoji WHERE mid=(SELECT mid FROM group_buying_message WHERE keyword='{key}');")
rows = cursor.fetchall()
cursor.close()
emojis=[]
#將資料一筆一筆寫入list中
for row in rows:
emojis.append({'index': row[0],'productId': row[1],'emojiId': row[2]})
#message_text資料型態為元組,不能直接丟入TextSendMessage(),用join重組成字串
message=TextSendMessage("".join(message_text),emojis)